{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# PyTorch Rain Prediction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Preprocessing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0",
    "_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a"
   },
   "outputs": [],
   "source": [
    "import numpy as np \n",
    "import pandas as pd\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.preprocessing import LabelEncoder\n",
    "import torch\n",
    "from torch import nn\n",
    "from torch import optim\n",
    "import torch.nn.functional as F\n",
    "from torch.utils.data import DataLoader, TensorDataset\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>Location</th>\n",
       "      <th>MinTemp</th>\n",
       "      <th>MaxTemp</th>\n",
       "      <th>Rainfall</th>\n",
       "      <th>Evaporation</th>\n",
       "      <th>Sunshine</th>\n",
       "      <th>WindGustDir</th>\n",
       "      <th>WindGustSpeed</th>\n",
       "      <th>WindDir9am</th>\n",
       "      <th>...</th>\n",
       "      <th>Humidity3pm</th>\n",
       "      <th>Pressure9am</th>\n",
       "      <th>Pressure3pm</th>\n",
       "      <th>Cloud9am</th>\n",
       "      <th>Cloud3pm</th>\n",
       "      <th>Temp9am</th>\n",
       "      <th>Temp3pm</th>\n",
       "      <th>RainToday</th>\n",
       "      <th>RISK_MM</th>\n",
       "      <th>RainTomorrow</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2008-12-01</td>\n",
       "      <td>Albury</td>\n",
       "      <td>13.4</td>\n",
       "      <td>22.9</td>\n",
       "      <td>0.6</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>W</td>\n",
       "      <td>44.0</td>\n",
       "      <td>W</td>\n",
       "      <td>...</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1007.7</td>\n",
       "      <td>1007.1</td>\n",
       "      <td>8.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.9</td>\n",
       "      <td>21.8</td>\n",
       "      <td>No</td>\n",
       "      <td>0.0</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2008-12-02</td>\n",
       "      <td>Albury</td>\n",
       "      <td>7.4</td>\n",
       "      <td>25.1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>WNW</td>\n",
       "      <td>44.0</td>\n",
       "      <td>NNW</td>\n",
       "      <td>...</td>\n",
       "      <td>25.0</td>\n",
       "      <td>1010.6</td>\n",
       "      <td>1007.8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.2</td>\n",
       "      <td>24.3</td>\n",
       "      <td>No</td>\n",
       "      <td>0.0</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2008-12-03</td>\n",
       "      <td>Albury</td>\n",
       "      <td>12.9</td>\n",
       "      <td>25.7</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>WSW</td>\n",
       "      <td>46.0</td>\n",
       "      <td>W</td>\n",
       "      <td>...</td>\n",
       "      <td>30.0</td>\n",
       "      <td>1007.6</td>\n",
       "      <td>1008.7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>23.2</td>\n",
       "      <td>No</td>\n",
       "      <td>0.0</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2008-12-04</td>\n",
       "      <td>Albury</td>\n",
       "      <td>9.2</td>\n",
       "      <td>28.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NE</td>\n",
       "      <td>24.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>...</td>\n",
       "      <td>16.0</td>\n",
       "      <td>1017.6</td>\n",
       "      <td>1012.8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>18.1</td>\n",
       "      <td>26.5</td>\n",
       "      <td>No</td>\n",
       "      <td>1.0</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2008-12-05</td>\n",
       "      <td>Albury</td>\n",
       "      <td>17.5</td>\n",
       "      <td>32.3</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>W</td>\n",
       "      <td>41.0</td>\n",
       "      <td>ENE</td>\n",
       "      <td>...</td>\n",
       "      <td>33.0</td>\n",
       "      <td>1010.8</td>\n",
       "      <td>1006.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>17.8</td>\n",
       "      <td>29.7</td>\n",
       "      <td>No</td>\n",
       "      <td>0.2</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         Date Location  MinTemp  MaxTemp  Rainfall  Evaporation  Sunshine  \\\n",
       "0  2008-12-01   Albury     13.4     22.9       0.6          NaN       NaN   \n",
       "1  2008-12-02   Albury      7.4     25.1       0.0          NaN       NaN   \n",
       "2  2008-12-03   Albury     12.9     25.7       0.0          NaN       NaN   \n",
       "3  2008-12-04   Albury      9.2     28.0       0.0          NaN       NaN   \n",
       "4  2008-12-05   Albury     17.5     32.3       1.0          NaN       NaN   \n",
       "\n",
       "  WindGustDir  WindGustSpeed WindDir9am  ... Humidity3pm  Pressure9am  \\\n",
       "0           W           44.0          W  ...        22.0       1007.7   \n",
       "1         WNW           44.0        NNW  ...        25.0       1010.6   \n",
       "2         WSW           46.0          W  ...        30.0       1007.6   \n",
       "3          NE           24.0         SE  ...        16.0       1017.6   \n",
       "4           W           41.0        ENE  ...        33.0       1010.8   \n",
       "\n",
       "   Pressure3pm  Cloud9am  Cloud3pm  Temp9am  Temp3pm  RainToday  RISK_MM  \\\n",
       "0       1007.1       8.0       NaN     16.9     21.8         No      0.0   \n",
       "1       1007.8       NaN       NaN     17.2     24.3         No      0.0   \n",
       "2       1008.7       NaN       2.0     21.0     23.2         No      0.0   \n",
       "3       1012.8       NaN       NaN     18.1     26.5         No      1.0   \n",
       "4       1006.0       7.0       8.0     17.8     29.7         No      0.2   \n",
       "\n",
       "   RainTomorrow  \n",
       "0            No  \n",
       "1            No  \n",
       "2            No  \n",
       "3            No  \n",
       "4            No  \n",
       "\n",
       "[5 rows x 24 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv(\"weatherAUS.csv\")\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>percent_missing</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Sunshine</th>\n",
       "      <td>47.692924</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Evaporation</th>\n",
       "      <td>42.789026</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cloud3pm</th>\n",
       "      <td>40.152469</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cloud9am</th>\n",
       "      <td>37.735332</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Pressure9am</th>\n",
       "      <td>9.855619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Pressure3pm</th>\n",
       "      <td>9.832411</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WindDir9am</th>\n",
       "      <td>7.041838</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WindGustDir</th>\n",
       "      <td>6.561504</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WindGustSpeed</th>\n",
       "      <td>6.519308</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WindDir3pm</th>\n",
       "      <td>2.656952</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Humidity3pm</th>\n",
       "      <td>2.538803</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Temp3pm</th>\n",
       "      <td>1.917113</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WindSpeed3pm</th>\n",
       "      <td>1.849599</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Humidity9am</th>\n",
       "      <td>1.247600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RainToday</th>\n",
       "      <td>0.988797</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rainfall</th>\n",
       "      <td>0.988797</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WindSpeed9am</th>\n",
       "      <td>0.948007</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Temp9am</th>\n",
       "      <td>0.635756</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MinTemp</th>\n",
       "      <td>0.447983</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MaxTemp</th>\n",
       "      <td>0.226453</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RISK_MM</th>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Location</th>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RainTomorrow</th>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               percent_missing\n",
       "Sunshine             47.692924\n",
       "Evaporation          42.789026\n",
       "Cloud3pm             40.152469\n",
       "Cloud9am             37.735332\n",
       "Pressure9am           9.855619\n",
       "Pressure3pm           9.832411\n",
       "WindDir9am            7.041838\n",
       "WindGustDir           6.561504\n",
       "WindGustSpeed         6.519308\n",
       "WindDir3pm            2.656952\n",
       "Humidity3pm           2.538803\n",
       "Temp3pm               1.917113\n",
       "WindSpeed3pm          1.849599\n",
       "Humidity9am           1.247600\n",
       "RainToday             0.988797\n",
       "Rainfall              0.988797\n",
       "WindSpeed9am          0.948007\n",
       "Temp9am               0.635756\n",
       "MinTemp               0.447983\n",
       "MaxTemp               0.226453\n",
       "RISK_MM               0.000000\n",
       "Date                  0.000000\n",
       "Location              0.000000\n",
       "RainTomorrow          0.000000"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "percent_missing = df.isnull().sum() * 100 / len(df)\n",
    "missing_values = pd.DataFrame({'percent_missing': percent_missing})\n",
    "missing_values.sort_values(by ='percent_missing' , ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>RISK_MM</th>\n",
       "      <th>Location</th>\n",
       "      <th>RainTomorrow</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>Albury</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>Albury</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.0</td>\n",
       "      <td>Albury</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>Albury</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.2</td>\n",
       "      <td>Albury</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   RISK_MM Location RainTomorrow\n",
       "0      0.0   Albury           No\n",
       "1      0.0   Albury           No\n",
       "2      0.0   Albury           No\n",
       "3      1.0   Albury           No\n",
       "4      0.2   Albury           No"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_print = df[['RISK_MM','Location','RainTomorrow']]\n",
    "df_print.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Considering just the location and RISK_MM (The amount of next day rain in mm. A kind of measure of the \"risk\") as our features."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2 = df[['RISK_MM','Location']]\n",
    "X = pd.get_dummies(df2).values\n",
    "X = StandardScaler().fit_transform(X)\n",
    "Y = df['RainTomorrow'].values\n",
    "Y = LabelEncoder().fit_transform(Y)\n",
    "X_Train, X_Test, Y_Train, Y_Test = train_test_split(X, Y, test_size = 0.30, random_state = 101)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Converting data from Numpy to Torch Tensors\n",
    "train = TensorDataset(torch.from_numpy(X_Train).float(), torch.from_numpy(Y_Train).float())\n",
    "test = TensorDataset(torch.from_numpy(X_Test).float(), torch.from_numpy(Y_Test).float())\n",
    "# Creating data loaders\n",
    "trainloader = DataLoader(train, batch_size=128, shuffle=True)\n",
    "testloader = DataLoader(test, batch_size=128, shuffle=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Modelling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "class ANN(nn.Module):\n",
    "    def __init__(self, input_size, hidden_size, num_classes):\n",
    "        super(ANN, self).__init__()\n",
    "        self.fc1 = nn.Linear(input_size, hidden_size) \n",
    "        self.fc2 = nn.Linear(hidden_size, num_classes)  \n",
    "    \n",
    "    def forward(self, x):\n",
    "        out = self.fc1(x)\n",
    "        out = F.relu(out)\n",
    "        out = self.fc2(out)\n",
    "        if not self.training:\n",
    "            out = F.softmax(out, dim=0)\n",
    "        return out"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ANN(\n",
      "  (fc1): Linear(in_features=50, out_features=20, bias=True)\n",
      "  (fc2): Linear(in_features=20, out_features=1, bias=True)\n",
      ")\n"
     ]
    }
   ],
   "source": [
    "# Instatiating the model\n",
    "model = ANN(50, 20, 1)\n",
    "print(model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 0, Loss: 294.88, Accuracy: 0.13%\n",
      "Epoch: 1, Loss: 123.58, Accuracy: 6.31%\n",
      "Epoch: 2, Loss: 62.27, Accuracy: 28.72%\n",
      "Epoch: 3, Loss: 35.33, Accuracy: 49.40%\n",
      "Epoch: 4, Loss: 22.99, Accuracy: 64.99%\n",
      "Epoch: 5, Loss: 16.80, Accuracy: 71.59%\n",
      "Epoch: 6, Loss: 13.16, Accuracy: 74.13%\n"
     ]
    }
   ],
   "source": [
    "# Defying loss function and optimizer\n",
    "loss_function = nn.BCEWithLogitsLoss()\n",
    "optimiser = optim.Adam(model.parameters())\n",
    "# Training loop for each epoch\n",
    "loss_plot, acc_plot = [], []\n",
    "for epoch in range(7):\n",
    "    total_loss, correct, total = 0, 0, 0\n",
    "    for x, y in trainloader: \n",
    "        # Zero the parameter gradients\n",
    "        optimiser.zero_grad()\n",
    "        # forward + loss + backward + optimise (update weights)\n",
    "        output = model(x)\n",
    "        outputs = output.squeeze(1)\n",
    "        loss = loss_function(outputs, y)\n",
    "        loss.backward()\n",
    "        optimiser.step()\n",
    "        # Keeping track of the loss\n",
    "        total_loss += loss.item()\n",
    "        output = F.softmax(output, dim=0)\n",
    "        count = [1 for i, j in zip(output, y) if i == j]\n",
    "        correct += sum(count)\n",
    "        total += len(y)\n",
    "        acc = ((100.0 * correct) / total)\n",
    "\n",
    "    \n",
    "    print(\"Epoch: %d, Loss: %4.2f, Accuracy: %2.2f\" % (epoch, \n",
    "                                                         total_loss, \n",
    "                                                           acc) + '%')\n",
    "    loss_plot.append(total_loss)\n",
    "    acc_plot.append(acc)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(12, 5))\n",
    "#plt.tight_layout()\n",
    "ax[0].plot(loss_plot)\n",
    "ax[0].grid(True)\n",
    "ax[0].set_title(\"Training Loss\", fontsize=20);\n",
    "ax[0].set_xlabel(\"Epoch\", fontsize=18);\n",
    "ax[0].set_ylabel(\"Loss\", fontsize=18);\n",
    "ax[1].plot(acc_plot)\n",
    "ax[1].grid(True)\n",
    "ax[1].set_title(\"Training Accuracy\", fontsize=20);\n",
    "ax[1].set_xlabel(\"Epoch\", fontsize=18);\n",
    "ax[1].set_ylabel(\"Accuracy (%)\", fontsize=18);\n",
    "plt.savefig(\"Training.png\", format='png', dpi=1200)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Evaluation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test Accuracy: 74.66 %\n"
     ]
    }
   ],
   "source": [
    "model.eval()\n",
    "# Computing the model accuracy on the test set\n",
    "correct, total = 0, 0\n",
    "for x, y in testloader:\n",
    "    output = model(x)\n",
    "    count = [1 for i, j in zip(output, y) if i == j]\n",
    "    correct += sum(count)\n",
    "    total += len(y)\n",
    "\n",
    "print('Test Accuracy: %2.2f %%' % ((100.0 * correct) / total))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Alternative Implementation (using CrossEntropyLoss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 0, loss 278.33\n",
      "Epoch 1, loss 88.38\n",
      "Epoch 2, loss 35.79\n",
      "Epoch 3, loss 19.73\n",
      "Epoch 4, loss 14.03\n",
      "Epoch 5, loss 11.35\n",
      "Epoch 6, loss 9.70\n"
     ]
    }
   ],
   "source": [
    "# Instatiating the model\n",
    "model2 = ANN(50, 20, 2)\n",
    "# Definying cross entrophy loss function and optimiser\n",
    "loss_function = nn.CrossEntropyLoss()\n",
    "optimiser = optim.Adam(model2.parameters())\n",
    "\n",
    "for epoch in range(7):\n",
    "    running_loss = 0.0\n",
    "    for x, y in trainloader: \n",
    "        # Zero parameter gradients\n",
    "        optimiser.zero_grad()\n",
    "        # Forward pass, loss function, backward pass and weights update\n",
    "        outputs = model2(x)\n",
    "        loss = loss_function(outputs, y.long())\n",
    "        loss.backward()\n",
    "        optimiser.step()\n",
    "        # Keeping track of the loss\n",
    "        running_loss += loss.item()\n",
    "    print(\"Epoch %d, loss %4.2f\" % (epoch, running_loss))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test Accuracy: 80.38 %\n"
     ]
    }
   ],
   "source": [
    "model2.eval()\n",
    "\n",
    "# Computing the model accuracy on the test set\n",
    "correct, total = 0, 0\n",
    "for x, y in testloader:\n",
    "    outputs = model2(x)\n",
    "    winners = outputs.argmax(dim=1)\n",
    "    count = [1 for i, j in zip(winners, y.long()) if i == j]\n",
    "    correct += sum(count)\n",
    "    total += len(y)\n",
    "print('Test Accuracy: %2.2f %%' % ((100.0 * correct) / total))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Adding More Features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2 = df[['RISK_MM','Location']]\n",
    "X = pd.get_dummies(df2).values\n",
    "X = StandardScaler().fit_transform(X)\n",
    "Y = df['RainTomorrow'].values\n",
    "Y = LabelEncoder().fit_transform(Y)\n",
    "X_Train, X_Test, Y_Train, Y_Test = train_test_split(X, Y, test_size = 0.30, random_state = 101)\n",
    "X_Train, X_Valid, Y_Train, Y_Valid = train_test_split(X_Train, Y_Train, test_size = 0.30, random_state = 101)\n",
    "# Converting data from Numpy to Torch Tensors\n",
    "train = TensorDataset(torch.from_numpy(X_Train).float(), torch.from_numpy(Y_Train).float())\n",
    "valid = TensorDataset(torch.from_numpy(X_Valid).float(), torch.from_numpy(Y_Valid).float())\n",
    "test = TensorDataset(torch.from_numpy(X_Test).float(), torch.from_numpy(Y_Test).float())\n",
    "# Creating data loaders\n",
    "trainloader = DataLoader(train, batch_size=128, shuffle=True)\n",
    "validloader = DataLoader(valid, batch_size=128, shuffle=True)\n",
    "testloader = DataLoader(test, batch_size=128, shuffle=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "class ANN2(nn.Module):\n",
    "    def __init__(self, input_size, hidden_size, hidden_size2, num_classes):\n",
    "        super(ANN2, self).__init__()\n",
    "        self.fc1 = nn.Linear(input_size, hidden_size) \n",
    "        self.fc2 = nn.Linear(hidden_size, hidden_size2) \n",
    "        self.fc3 = nn.Linear(hidden_size2, num_classes)  \n",
    "    \n",
    "    def forward(self, x):\n",
    "        out = self.fc1(x)\n",
    "        out = F.relu(out)\n",
    "        out = self.fc2(out)\n",
    "        out = F.relu(out)\n",
    "        out = self.fc3(out)\n",
    "        return out"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 0, Loss: 0.37, Accuracy: 0.06%\n",
      "Validation, Loss: 0.09, Accuracy: 4.00%\n",
      "Epoch: 1, Loss: 0.06, Accuracy: 28.37%\n",
      "Validation, Loss: 0.02, Accuracy: 50.34%\n",
      "Epoch: 2, Loss: 0.02, Accuracy: 63.10%\n",
      "Validation, Loss: 0.01, Accuracy: 70.71%\n",
      "Epoch: 3, Loss: 0.02, Accuracy: 72.77%\n",
      "Validation, Loss: 0.01, Accuracy: 74.29%\n",
      "Epoch: 4, Loss: 0.02, Accuracy: 76.32%\n",
      "Validation, Loss: 0.01, Accuracy: 77.42%\n",
      "Epoch: 5, Loss: 0.01, Accuracy: 76.81%\n",
      "Validation, Loss: 0.01, Accuracy: 78.11%\n",
      "Epoch: 6, Loss: 0.01, Accuracy: 77.56%\n",
      "Validation, Loss: 0.01, Accuracy: 78.14%\n",
      "Epoch: 7, Loss: 0.01, Accuracy: 78.00%\n",
      "Validation, Loss: 0.01, Accuracy: 78.33%\n",
      "Epoch: 8, Loss: 0.01, Accuracy: 77.88%\n",
      "Validation, Loss: 0.01, Accuracy: 78.42%\n",
      "Epoch: 9, Loss: 0.01, Accuracy: 78.19%\n",
      "Validation, Loss: 0.01, Accuracy: 78.53%\n",
      "Epoch: 10, Loss: 0.01, Accuracy: 78.20%\n",
      "Validation, Loss: 0.01, Accuracy: 78.53%\n",
      "Epoch: 11, Loss: 0.01, Accuracy: 78.22%\n",
      "Validation, Loss: 0.01, Accuracy: 78.51%\n"
     ]
    }
   ],
   "source": [
    "# Instatiating the model\n",
    "model3 = ANN2(50, 30, 10, 1)\n",
    "# Defying loss function and optimizer\n",
    "loss_function = nn.BCEWithLogitsLoss()\n",
    "optimiser = optim.Adam(model3.parameters())\n",
    "# Training loop for each epoch\n",
    "loss_plot, acc_plot = [], []\n",
    "val_loss_plot, val_acc_plot = [], []\n",
    "for epoch in range(12):\n",
    "    total_loss, correct, total = 0, 0, 0\n",
    "    model3.train()\n",
    "    for x, y in trainloader: \n",
    "        # Zero the parameter gradients\n",
    "        optimiser.zero_grad()\n",
    "        # forward + loss + backward + optimise (update weights)\n",
    "        output = model3(x)\n",
    "        outputs = output.squeeze(1)\n",
    "        loss = loss_function(outputs, y)\n",
    "        loss.backward()\n",
    "        optimiser.step()\n",
    "        # Keeping track of the loss\n",
    "        total_loss += loss.item() \n",
    "        output = F.softmax(output, dim=0)\n",
    "        count = [1 for i, j in zip(output, y) if i == j]\n",
    "        correct += sum(count)\n",
    "        total += len(y)\n",
    "    val_total_loss, val_correct, val_total = 0, 0, 0\n",
    "    model3.eval()\n",
    "    for x, y in validloader: \n",
    "        output = model3(x)\n",
    "        outputs = output.squeeze(1)\n",
    "        val_loss = loss_function(outputs, y)\n",
    "        # Keeping track of the loss\n",
    "        val_total_loss += val_loss.item()\n",
    "        output = F.softmax(output, dim=0)\n",
    "        val_count = [1 for i, j in zip(output, y) if i == j]\n",
    "        val_correct += sum(val_count)\n",
    "        val_total += len(y)\n",
    "\n",
    "    acc = ((100.0 * correct) / total)\n",
    "    val_acc = ((100.0 * val_correct) / val_total)\n",
    "    epoch_loss = total_loss / len(trainloader)\n",
    "    val_epoch_loss = val_total_loss / len(testloader)\n",
    "    print(\"Epoch: %d, Loss: %4.2f, Accuracy: %2.2f\" % (epoch, \n",
    "                                                         epoch_loss, \n",
    "                                                           acc) + '%')\n",
    "    print(\"Validation, Loss: %4.2f, Accuracy: %2.2f\" % (val_epoch_loss, \n",
    "                                                           val_acc) + '%')\n",
    "    loss_plot.append(total_loss)\n",
    "    acc_plot.append(acc)\n",
    "    val_loss_plot.append(val_total_loss)\n",
    "    val_acc_plot.append(val_acc)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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peoSr/2Maoy5pYLy252UzcOaStyriqYY3ZOSSacm2udZ1S5//vOfmTJlCm+//TY33HBDqW1z584lMzOz3FWl6dOnExcXx7hx44iLi2PHjh3MnDmT3r178+OPP9K6dWu341ixYgWXXnop9evX54EHHiAiIoI5c+awfPnycnWzs7N54YUXuOaaa7j++usJCwtjzZo1zJw5kx9++IG1a9cSEBBAp06deP7557nvvvu44YYbuPbaa4Ezd3cDuPfee5k6dSo9e/bk6aef5uTJk7z22msMHDiQL774giFDhpSqv379ehYsWMDo0aMZOXIkS5cu5fXXX8ff359XXnnF7feiIi+//DITJ06kffv2PP744xQWFvL2229z9dVX8+abb3LHHXcAVjfSIUOG0LhxY+6++27i4uI4fPgw33//PZs2beKiiy4CYPjw4axcuZLx48fTpUsXMjIy2LZtG0lJSdxzzz0ei1upszLGmi48rhO0HlypQ2TnFTBm1jrW7znOy7d055IOcR4OUilVpxhjau3tggsuMFXx3XfflXqenp1nWkz+wkxfur1Kx/VFZdtam7nT1q1bt1ZfIOfAqVOn3Ko/aNAg4+fnZw4cOFCqvGfPniYwMNAcO3asVHl6enq5Y2zatMkEBASYCRMmlCrv06ePad26damyESNGGD8/v1JlF154oQkMDDTbt5/+f5adnW26d+9uAPPkk08WlxcUFJjMzMxy7ZwxY4YBzLx584rLtm/fXm7/Inl5eQYwo0ePLi7bsmWLAUz//v1Nbm5ucfm+fftMeHi4adWqlSkoKCi1v8PhMGvXri117CFDhpjAwECTmZlZ7nXL6tOnj4mMjDxjnV27dpmQkBDTtm3bUu0+ceKEadGihYmIiDAnT540xhjzwgsvGMCsX7++wuOlpKQYoNzfy1Wu/B8B1hkfOCf44q2q5yljatnn96+LjXk8wpif5pTb5Eo7s/PyzW1vrTbxD3xh5q3fVw0Bnhu16m96FnWlrXWlncbU3LZWdK7SDvpuCAvyp2F4EHt0YVoF8N8H4PAmb0dRWqPOcEXll3YZPXo0S5cuZfbs2UyePBmAX375hVWrVnHDDTcQExNTqn5YmHW11RhDWloaubm5NGrUiDZt2rB69Wq3X//gwYOsXbuWm2++udQ040FBQdx9992MGjWqVH2Hw0FISAhpaWnFs8Tl5+czaNAgAFavXs3w4cPdjgPg008/BWDy5MkEBAQUlzdt2pRRo0bxn//8h40bN9K1a9fibX379iUxMbHUcQYNGsTXX3/Nnj17aNeuXaViKWnJkiVkZWUxadKkUlfGIiMj+etf/8r999/P0qVLGTZsGJGRkcVt6dChA8HBweWOFxoaSkBAAKtWrWLPnj20aNGiyjEqVWkrpkFEE+h0vdu75hUUMnHOjyT9eoynh3dmePem1RCgUqqu8cUJHnxafHSorrWkaq3hw4dTv3794skcAN566y2A4q5dJa1fv54rr7yS8PBwIiMjadiwIQ0bNmTbtm0cP+7+FPu//27N2+IsqejQoYPTfebOncuAAQMICQkhKiqKhg0b0rZtW4BKxVBk165dAHTs2LHctk6dOpWKt0irVq3K1Y2OtgaVp6SkVDqWkvbs2eNyXCNGjODiiy/mySefpEGDBgwePJh//etfpaYmDw4OZurUqfz000/Ex8fTqVMnJk6cyHfffeeReJVy2YENsPt76PkX8As4e/0SCgoN93z0M4u3HOHxqztwy0VVm25cKaWK6JUlN8VHh/G/3455OwzlC6pwBcdXBQcHc+utt/LKK6+wYsUKevTowezZs2natGm58Tm7d++mf//+NGjQgMcee4y2bdsSFhaGiDBhwoTiNZTcYV0FBxGpcFtJH330EbfccgsXXngh06ZNo2nTpgQHB5Obm8tVV11FYWGh2zGc6fXOpmjqb08dr6rHCQ4OZunSpaxevZrFixezbNkyHnnkEZ544gnmzp3LNddcA8Bf//pXrrvuOhYtWsSyZcv46KOPePnllxkxYgTvvfeeR+JW6qxWTIOgCOh+m1u7FRYaJs/byOc/H2Ty5e34c5+W1RSgUqou0mTJTfExYXy8fj+ZufmEBurbp2qf0aNH88orr/D222+TmprK4cOHefjhh8slAvPmzSMzM5OvvvqKfv36FZcbY0hOTi7uAuaOogkhtm3bVm6bs7LZs2cTGhrKokWLaNjw9GxXzmbjc5aAuRLLli1bynVN27p1K+D8SlJ1a9myZXFcAwYMcCmuHj160KNHD8C6MtW1a1ceffTR4mQJoEmTJowdO5axY8eSn5/PiBEjeP/997n33nt1HSVV/VJ3wdbPoPcECI5weTdjDI8t3Mwn6/czaXACfxno/qQySil1JtoNz00tokMBa0Y8pWqj7t2707VrVz788EOmT5+OiPDnP/+5XL2i5KnslY4ZM2aQnJxcqddu3LgxiYmJzJ8/nx07dhSX5+Tk8O9//9tpDA6Ho9QVJGMMU6ZMKVe3aFHbklOKn0nRjHnPPfcc+fmn11Y7cOAAs2bNolWrVnTp0sW1hnnQoEGDCAkJYdq0aaWmJD916hTTp08nIiKCwYOtWcSc/R2aN29OTExM8fuQmZlJVlZWqTr+/v507twZcP39UqpKVr0C4gc9/uLyLsYYnlq0jfdW7WXcgFbcfUlCNQaolKqr9NKIm+KLpw/PoP15rv/6pVRNMnr0aCZMmMDixYsZOHCg0ynAr7rqKh566CFGjBjBXXfdRWRkJD/88ANfffVV8dWPypg6dSqDBw+mT58+3HnnnURGRvLBBx847X52ww038NlnnzF06FBuv/12cnJyWLBgAdnZ2eXqxsXFER8fz/vvv098fDyxsbGEh4dz1VVXOY2jQ4cO3HPPPUydOpUBAwZw0003cerUKWbMmEFWVhavvPIKDofnf2/KyclxmuyB1d4mTZrwzDPPMGnSJHr06MFtt91GYWEh77zzDrt27eLNN98snvjhiSee4LvvvmPo0KG0bNmSwsJCPvvsM3bs2MFDDz0EWFejLrnkEq677jo6duxIVFQUW7du5dVXX6V169b06dPH421UqpSMFNgwG7rcBBHnubzbC1//xhvLd3F773geuLyd21ePlVLKFZosuanoypJO8qBqsxEjRnD//feTnZ3tdGIHgISEBL788ksefvhhnnrqKfz9/enTpw/Lli1j7NixHD58uFKv3a9fP77++msefPBBnn76aSIjI7npppsYM2ZMqZnnwFrUNj09nRdffJF7772XBg0acM011/Dkk08SGxtb7tgffPAB9957Lw8++CCZmZm0bt26wmQJ4IUXXqBt27a8+uqrTJ48mcDAQHr27Mnjjz9ebUlEdnY2jz76qNNt7dq1o0mTJkycOJHGjRvzwgsv8PjjjyMidOvWjYULF3L11VcX17/uuus4evQoc+fO5ejRo4SEhNC2bVvefPPN4quFLVq04LbbbiMpKYkFCxaQk5ND06ZNGTduHJMnT3Y6g55SHrX2DcjPsrrguWj60u1M/24HN1/YjMeGdtBESSlVbTRZclN4cAAx9QLZnazTh6vaKyoqqlzXLGcGDhzIDz/8UK7c2QKyzsree+89pxMIDBw4kJUrV5Yrd3Z1afz48YwYMaLcArPO6vbq1YsVK1aUK/f3969w4oRx48Yxbtw4p9tc2X/MmDGMGTPmjPsXcfYelZWWlgZYV5nKLh5c1uDBg4u75FWkYcOGvPTSSy7Fp5TH5WXBmpmQcBnEtndplze+/53nv/6N67o14anrOuNwaKKklKo+OmapElpEh7Fb11pSSimlquanDyAzGfpMdKn67FV7mLJoG1d2bsRzN3TBTxMlpVQ10ytLldAiOpSVOz2zZopSSilVJxUWwMrp0Lg7tDh7t9bv9+fx5ubNXNI+ln//sRv+fvp7r1Kq+uknTSXER4dx6GQ22XkF3g5FKaWUqpl+WQSpv1tXlc4y5mjZb8d4a3Mu/RJimH5rdwL99euLUurc0E+bSiia5GFvqk7yoJRSSrnNGGsR2qh4aH/NWat/tG4fEUHCzD8lEhxQ8eLPSinlaZosVULLGGv68F06yYNSSinlvr2rYP9a6PVXcJw5+SksNKzYmUKnaD9CAjVRUkqdW5osVUKLBqfXWlJKKaWUm1ZMg5AG0HXEWatuPXSK1IxcOkTrVxal1LmnnzyVEBkaQFRogK61pJRSSrnr2G/w65dw0f9BYOhZqy/fkQxAx2i9qqSUOvc0WaqkFtFhemWpjqho/Ryl6jr9v6EqZeXL4B8MF411qfry7cmcHxdO/WD9yqKUOvf0k6eSWsaEsTtZryzVdoGBgS4tzqpUXZSVlUVAQIC3w1A1SdoR+HkudL0VwmLOWj07r4A1u1Pp0+bsdZVSqjposlRJLaJDOXgyS6cPr+ViYmLYv38/qamp5OXl6S/pSmFdUcrMzOTAgQPExsZ6OxyvEJH6IvKJiPwiIttEpJeINBCRb0Rku30f5e04fc7qGVCQZ03s4IJ1u4+Tm19IvwRNlpRS3qGL0lZSfHQYxsD+45m0iQ33djiqmkRGRhIUFMSxY8dISUkhPz/f2yG5JTs7m+DgYG+HUe3qSjvBd9oaEBBAXFwcERER3g7FW14CvjLG3CAigUAo8BCwxBjzjIg8ADwATPZmkD4lJw3WvQnth0J0a5d2+X7HMQL8hItaNmDt4WqOTymlnNBkqZKK1lranazJUm0XHBxMs2bNvB1GpSQlJdGtWzdvh1Ht6ko7oW611VeJSATQH7gdwBiTC+SKyLXAQLvaLCAJTZZO2zAbsk9C70ku77J8ezLdmkcRFqRfV5RS3qHd8CopPtqaPny3TvKglFJ1TSvgGPC2iPwoIm+ISBgQZ4w5BGDf180+is4U5MGqV6B5b2h2oUu7pGbksuXgKfrpeCWllBd57acaEXkLGAocNcZ0ssueAP4P6yQE8JAx5kt724PAaKAAmGiMWXzOgy4hKiyQyJAA9uj04UopVdf4A92BCcaY1SLyElaXO5eIyFhgLEBcXBxJSUlVCiY9Pb3Kx6husUf+R4eT+9jUbBQpLsa6+pDV7Tk0bS9JSQdqRDs9Rdta+9SVdkLta6s3r2u/A0wH3i1T/qIx5vmSBSLSAbgZ6Ag0Br4VkbbGGK/OrhAfHapXlpRSqu7ZD+w3xqy2n3+ClSwdEZHzjDGHROQ84KiznY0xM4GZAImJiWbgwIFVCiYpKYmqHqNaGQOvPQIxbek8/D5wuNap5b+fbCQ8+BC3XzMIP4f4fjs9SNta+9SVdkLta6vXuuEZY5YBqS5WvxaYa4zJMcbsAnYAF1VbcC5qER2myZJSStUxxpjDwD4ROd8uGgxsBRYCt9lltwGfeSE83/N7EhzeBL0nuJwoGWNYviOZ3q2j8XNI9canlFJn4Itjlv4qIhtF5K0S0642AfaVqLPfLvOq+OhQDhzPIje/0NuhKKWUOrcmAO+LyEagK/BP4BngUhHZDlxqP1crpkG9OOjyR5d32Z2SyYETWfRNaFiNgSml1Nn52vQyrwJPAsa+fwG4A3D2s5LTBW882Rf8bH0us47lUWhg/uIkGoX5Yt7putrWv/RMtK21T11pJ9SttvoyY8xPQKKTTYPPdSw+7fAm2LkUBj8G/kEu77Z8uzV0WSd3UEp5m08lS8aYI0WPReR14Av76X6g5NzNTYGDFRzDY33Bz9bnMnzPcV7ftIK41p0Y2K5mT3pU2/qXnom2tfapK+2EutVWVQuseBkCwiDxDrd2W74jmSb1Q4qX6VBKKW/xqcsh9oDYItcBm+3HC4GbRSRIRFoCCcCacx1fWfH2h/iuZB23pJRSSpVyYh9sngcX3AYhUWevb8svKGTFzhT6JcQgouOVlFLe5c2pw+dgLd4XIyL7gceBgSLSFauL3W5gHIAxZouIfIQ1gDYfuMvbM+EBNAgLJDzInz06yYNSSilV2qpXrZnwev7Frd02HjhJWnY+fRO0C55Syvu8liwZY25xUvzmGeo/BTxVfRG5T0RoERPKbl1rSSmlfJaIxALDsH6g64i1WKzBWtNvM5AEfGaMcTrVt6qErBOwYRZ0Gg71m7u16/LtyYhA79aaLCmlvM+nuuHVRC2iw/TKklJK+SAR6SIiHwJ7gRlY3btDgT1YM6yGAtcDrwF7RWSuiHTxVry1yrq3IDcdek90e9flO5Lp2DiCBmGB1RCYUkq5R5OlKmoZHcb+41nkFej04Uop5StE5C1gA3AB1hTevYAIY0yCMaanMaaHMSYBiLC3PQdcCKwXkTe8FXetkJ8Dq2dAq4Fwnnu5Z0ZOPj/uPU7fNjpluFLKN2iyVEUtokPJLzQcOJ7l7VCUUkqd9gfgOmNMG2PME8aY1caYvLKVjDG59rZHjTGtgRuAbuc82tpk40eQfqRSV5VW70ohr8DQV6cMV0r5CE2Wqig+JgyA3doVTymlfIYx5gJjzOeV2O8zY8wF1RFTnVBYaE0XHtcZWg9ye/fl21MI8neQGO/67HlKKVWdNFmqoqI1IPboJA9KKaXquu1fQ/Kv0HsCVGLa7+U7jnFRywYEB/hVQ3BKKeU+n1qUtiZqWC+IsEA/vbKklFI1iIiEAUOxFjw/CCwyxpz0blS1wIppENHUmgXPTUdOZfPbkXSu7960GgJTSqnK0WSpikTEnhFPrywppVRNICKdgG+B+kAq0BA4KSJXGGPWejW4mmz/etjzA1z2T/ALcHv3H3YkA9BHxysppXyIdsPzgPiYUHYn65UlpZSqIV4CPgeijDGNgabAr8DLXo2qplvxEgRFQvdRldp9+fZkosMC6XBehIcDU0qpytNkyQNaRIex73gm+Tp9uFJK+QwRuVdEnJ3n2gP/McZkARhjjgCzgQ7nMr5aJWUnbPscLrwDgsLd3t0Yw/IdyfRuE4PD4f5YJ6WUqi6aLHlAfHQoeQWGQyezvR2KUkqp0yYBa0Ska5nyLcCdIhIEICINgT8BW89xfLXHyv+Awx96jK/U7r8dSedoWg5920R7ODCllKoaTZY8oEW0Th+ulFI+qAOwGlglIs+KSLBdfg9wDXBCRA4AB4B2wATvhFnDZSTDT+9Dl5sgvFGlDrHcHq/UN0EXo1VK+RZNljygZfFaSzrJg1JK+QpjTLox5i7gYuBKYIuIXGKM2QS0AUYD/wb+DLTWyR0qac3rkJ9dqUVoiyzffoxWMWE0qR/iwcCUUqrqdDY8D4gNDyI4wKGTPCillA8yxqwUke7Ag8DnIvIh8DdjzAdeDq3my82ENTOh7eXQ8PzKHSK/kNW7UnXKcKWUT9IrSx4gIsRHh7FHu+EppZRPMsbkGWP+H9ANaAX8KiK3ejmsmu+n9yErtUpXlX7ce5zM3AL6JuiU4Uop36PJkoe0iA7VbnhKKeVjRCRMRAaLyDUi0sQY84sxpj/wKPAfEfmviLTwdpw1UmGBNbFDkwugRe9KH2b5jmT8HEKv1jq5g1LK92iy5CHx0WHsTcmkoNB4OxSllFKAPQver8A3wKfADhH5PwBjzGtYE0BkAptF5G8ionNWu2Pb53B8l3VVqQpv3ffbk/lD00gigt1fyFYppaqbJkseEh8TRm5BIYdP6fThSinlI6YBB7G63UUBbwAviUh9AGPMIWPM9VjTht8DrPFWoDWOMbBiGkS1hPZXV/owQUKNBAAAIABJREFUJ7Py2Lj/BH3baBc8pZRv0mTJQ1pEhwLoJA9KKeU7ugFvGGN2G2NOAs8BwUDbkpWMMZ8CHdFkyXV7VsCB9dDrLnD4VfowK3emUGh0ynCllO/SZMlD4nWtJaWU8jX7gQElnvcHDNa6SqUYY07Z04y7RER2i8gmEflJRNbZZQ1E5BsR2W7fR1W1AT5rxTQIjYauI6p0mOU7jhEW6Ee35vU9FJhSSnmWJkse0igimEB/B3t0kgellPIVTwI3i8gOO6GZBcwyxpRLlirpYmNMV2NMov38AWCJMSYBWGI/r32O/gK/fQUXjYXA0Cod6ocdKfRoFU2An34dUUr5Jv108hCHQ2jRIFS74SmllI+w11HqBXwEfA/cYoy5oxpf8lqshAz7flg1vpb3rHwZ/EPgwv+r0mH2H89kV3KGjldSSvk0XZTWg+JjwvTKklJK+RBjzBqqZyySAb7+/+zdd3hUZfbA8e9JLwRCEhJ6QrWAKMgq0kRYEWwodkVBQcTVddV1V2yov8VdZS2r61pQQBQVQeyAu6iEKqKQSJdQQnESIAmQRvr7++NOYkIKyWQyd5Kcz/Pkmcy9d+6clyjhzHve84qIAd40xswEYowxKc73TRGR6AZ4X3sZA78shTPHQGj9Wn2vTkoDYIjur6SU8mK2JUsiMhu4HDhsjOntPPZP4AqgANgN3G6MOSYiccB2rBawAOuMMVM8HvQpxEWGsHLnEUpKDD4+2oFWKaWasEHGGIczIVomIjtq+0IRmQxMBoiJiSE+Pr5egWRnZ9f7HrUVmHeEC3LT2XmiFY56vucniXmEBwoHt/3Er9tP/TvTk+O0m4616Wku44SmN1Y7Z5beAV4F3i13bBnwiDGmSESeAx4BHnae222MOcezIdZNbGQo+UUlHMrKo12rYLvDUUqpZktE3gOeNMbsqePrejhfN66m64wxDufjYRH5FDgPOCQi7ZyzSu2Aw9W8diYwE6B///5m2LBhdQmxkvj4eOp7j1rb9gWsg54X3kDPjue6fJuSEsMDK5cxvFdbLrqodr/aPTpOm+lYm57mMk5oemO1bc2SMWYlkHHSsf8ZY4qcT9cBHT0eWD2UdcRL01I8pZSyWXdgh4h8LCJXiki1n2CJSAsRuVZEPge2Al1qurGIhIpIWOn3wEhgC/AFMN552XjgczeMw7ukJIKPH8T0qtdttqVkcjS3UEvwlFJez5vXLN0BfFTueRcRSQAygceNMavsCat6pXst7UvP4YJu9avlVkop5TpjzAUicjPwBPAZUCQiW7FKvDMAASKAHsAZgC+wDbjVGPNR1XctEwN8KiJg/R79wBjztYj8CCwQkYnAfuA694/MZo4EiD4D/IPqdZtVzvVKg7S5g1LKy3llsiQijwFFwPvOQylAZ2NMuoicC3wmIr2MMZlVvNZtteB1rbksMQY/gZUJO2ibW6fKD9s1tfrSmuhYm57mMk5oXmOtL2c3vA9EZARW4jIUq0NdaVVFCdZ62DeAhc6Kh9rcdw9wdhXH04ERbgjdOxkDjkQ4/bJ632rNrjROiwkjOqx+SZdSSjU0r0uWRGQ8VuOHEcYYA2CMyQfynd9vEJHdWDuw/3Ty691ZC+5KzWXsxnhKQsIYNsz1Wm47NLX60proWJue5jJOaF5jdRdjzLdY+x4hIj5AJFY3u/TS3zOqFo7thxMZ0L5vvW6TV1jM+uQMbh0Q66bAlFKq4XhVsiQio7AaOlxojMktd7wNkGGMKRaRrlhlE145dRMXGUpyuu61pJRS3sgYUwIcsTuORikl0XpsX79eSz8mZ1BQVMJgXa+klGoEbGvwICIfAt8Dp4nIQWeN96tAGFYb1kQRecN5+VBgk4j8DHwMTDHGZFR5Y5vFRlp7LemHlUoppZoURwL4+ENM73rdZvWuNPx9hfO7RLgpMKWUaji2zSwZY26q4vCsaq5dBCxq2IjcIy4qhBOFxRzJyie6pdZiK6WUaiIciVZzB7/Aet1mdVIa/Tq3JiTAq4pblFKqSrbNLDVVZe3D07V9uFJKqSbCGGtmqZ7rldKz89nqyNSW4UqpRkOTJTf7ba8lXbeklFKqiTi2D/KO1Xu90prd6YC2DFdKNR6aLLlZ+/Ag/HxEmzwopZRqOhwJ1mM9Z5bWJKXRMsiPPh3D3RCUUko1PE2W3MzP14dOESHs0zI8pZRSTYUj0WruEH2my7cwxrB6VxoDu0Xh6yNuDE4ppRqOJksNIDYyRGeWlFLKi4jIThF5WETa2h1Lo+RIgJhe9WrusDcth1+PnWCQrldSSjUimiw1gDhtH66UUt6mEPgHsF9EPhORy50b1KpTMcbaY6m+65V2pQEwRNcrKaUaEf1F0QDiIkPIzi8iLbvA7lCUUkoBxphewEBgLnAR8DlwQESeEZFutgbn7Y7uhbzj9V6vtCopjY6tg4mNDHFTYEop1fA0WWoAsVFWR7x9WoqnlFJewxizzhhzJ9AOmATsBR4BdorIdyJys4jUbxOhpsiRaD22c31mqai4hO93pzOkRxQiul5JKdV4aLLUAHSvJaWU8l7GmFxjzBxjzGDgdGA+MAx4D3CIyEsi0tnOGL2KIwF8A+rV3GHTr8fJyi/SluFKqUanzsmSiHQXkVEnHTtfRL4UkTUiMtl94TVOHVsH4+sjOrOklFJeSkR8ReRq4EXgBsAAy4F1wB+B7SIyxsYQvUdKorO5Q4DLt1idlIYIDOqmyZJSqnHxc+E1zwERwNcAIhIFLAVaACeA10XksDHmM7dF2cj4+/rQsXWwziwppZSXEZHTgYnArUA0cBh4HnjLGLPbeU13YAEwA2ttU/NlDDh+hrOuqddtViel0bt9K1qHup5wKaWUHVwpw+sPfFPu+U1AS6Af0Ab4AfhT/UNr3GIjQ0lO05klpZTyBiJyh4isAbYCDwI/A9cBHY0xU0sTJQBjzC7gFUAbP2Tsgfzj9VqvlJ1fxMb9R7UETynVKLmSLLUBHOWejwLWGGO2GGMKsGq/XS9sbiLinHstaftwpZTyCm8DXYBngW7GmEuMMYuMMUXVXL8Naw1T8+ZIsB7r0Qlv/d50ikoMQ3R/JaVUI+RKGV4OEA5WzTcwGOsTuFInsGaamrXYyFCy8oo4mltIhJYdKKWU3a4BvjDGFNfmYmPMemB9w4bUCKQkgm8gRJ/h8i1WJaUR6OfDubGt3RiYUkp5hiszS1uBW0UkErgTa63SsnLnY4EjboitUYtz7iORrE0elFLKdsaYT2ubKKlyHM7mDr7+Lt9idVIa53WJIMjf142BKaWUZ7iSLP0T6IO1KPY/QAKwqtz5kcDG+ofWuMXpXktKKeU1RORpEdlSw/lNIvK4J2PyeiUlkPJzvUrwDmXmkXQ4m8G6Xkkp1UjVOVkyxiwGhgP/Ap4GRhrnwhznbNNB4B03xtgodWwdjI/A3jTtiKeUUl7gaipWQZxsGXCth2JpHDL2QH4mtHe9ucPqpDQABut6JaVUI+XKmiWMMSuBlVUcTwfG1jeopiDQz5f24cE6s6SUUt6hC7CjhvO/AJM8FEvjkJJoPdZjZmn1rjQiQwM4o22zX8qslGqkXEqWTiYifsAYrP2XvjTGpLrjvo1dXGSo7rWklFLeI7yGc60BXVRTniPBau7Q5nSXXm6MYfWuNAZ2j8LHR9wcnFJKeUady/BEZIaI/FjuuWDtu7QAeBPYLCK6NwUQGxmiM0tKKeUdtmJ9qFeJ8/fYldQ881TV63xFJEFEvnI+jxCRZSKS5Hxs3O3fHInQ9iyXmzvsPJTNkax8huh6JaVUI+ZKg4dRVGzocAUwFKvxw83OY1PrGVeT0CUqlGO5hRzLLbA7FKWUau5mAQNE5B0RaVN60Pn9bGCA85q6+BOwvdzzqcC3xpgewLc05t+FZc0dXF+vtCrJaow7SNcrKaUaMVeSpU5AUrnnVwB7nTugzwfeAEa4I7jGLjbS6oinpXhKKWUvY8xbwAfAbUCqiBwUkQNAKjAeWGCMeb229xORjsBlWJvdlhoDzHV+Pxe4yh2x2yJjNxRk1Wu90ppdaXSNCqVDeLAbA1NKKc9yJVkKAMrvVXERVhleqT1Au/oE1VSU7rWkpXhKKWU/Y8w44EbgK+A4kAV8AVxvjLmpjrf7F/BXoKTcsRhjTIrzvVKA6HoHbRdHgvXYzrWZpYKiEn7Ym6Fd8JRSjZ4rDR4OYJUrzBSRXkBXYFq589FA9qluIiKzgcuBw8aY3s5jEcBHQByQjPUL7Kjz3CPARKxE7T5jzH9diN2jOkWEIALJ2j5cKaW8gjFmAdYaW5eJSOnvrg0iMsyF108GJgPExMQQHx9fn3DIzs6u9z1O1m3Xl7T3CWD1tkOYHWl1fv2OjGJyC4oJz0slPr7ur69KQ4zTW+lYm57mMk5oemN1JVmaDzwhItFALyATWFLufF9gdy3u8w7wKvBuuWOl9d7PishU5/OHReRMrE8DewHtgW9EpKe378Ye5O9Lu5ZBOrOklFJNyyDgShG5FAgCWorIPOCQiLQzxqSISDuszdsrMcbMBGYC9O/f3wwbNqxewcTHx1Pfe1Sydwa0P5sLh7tWVf/Tf3/B12c3k8ZcSMsg1xpEnKxBxumldKxNT3MZJzS9sbqSLP0Da93SVVhlDLcZY44BiEgrrI5CL53qJsaYlSISd9LhMcAw5/dzgXjgYefx+caYfGCviOwCzgO+dyF+j4qLCiVZkyWllPIKItIfOB+rVfjJpejGGPO3U93DGPMI8IjzfsOAh4wx40Tkn1jrn551Pn7uxtA9p7S5wzk3n/raaqzelcbZHVu5LVFSSim71DlZciYsE51fJ8vCWq/kat1ZhXpv5+wVQAdgXbnrDjqPVeLO8gZ3TCMG5Oez+VCR109HNrUp05roWJue5jJOaF5jdScRCQY+AUYCAhjnI+W+N8Apk6UaPAssEJGJwH7gunrcyz7pu6Ag2+X1SsdzC9l08Bj3Du/h5sCUUsrz3LIpbSljTAnWbJO7VbWbnakmBreVN7hjGvEX2U38wR30PX8QrYK99xO2pjZlWhMda9PTXMYJzWusbjYNK1F6Bqut93Ks2Z/DWLNEwVid8urEGBOPVQWBMSadptANtrS5g4ud8L7fk0aJgcG6v5JSqglwpRseIhIqIk+LyCYRyXZ+bRKRp0QktB7xHHLWeXNSvfdBrNK/Uh0BRz3ex2NK24fv1/bhSillp2uBhcaYacAW57Ffnc2Cfo/V6XWCTbF5l5RE8AuGqJ4uvXz1rjRCA3zp2znczYEppZTn1TlZcnasWw88AbQFEpxfMVif3K13XuOKL7A+6YOK9d5fADeKSKCIdAF6OGPwenFRVvtwXbeklFK26gSscH5f2hwoAMAYUwR8iNVISDkSoF0f8HWt+GR1UhoDukbi7+vS57FKKeVVXPmb7P+A04F7gXbGmCHGmCFYXeruAU4DnjrVTUTkQ6wGDac5NweciFXvfbGIJAEXO59jjNmK1ep1G/A1cI+3d8IrFRthzSxpRzyllLJVFr+Vnmdh7Y/Uvtz541gfADZvJcWQssnl9UoHMnJJTs/V/ZWUUk2GKx8bXQm8bYx5rfxBZ/Lyuoj0xeqUd19NN6lhA8Aq672NMc9g1Zo3KsEBvrRtGcRe3WtJKaXstBvoCdbvKxHZilWaN1tEBBiLtY9g85aWBIU5Lq9XWrPL2lNJ1ysppZoKV2aWYrDK7qqz0XmNcoqNDNGZJaWUstc3wDUi4ut8/iYwSkR2A0lY65Zm2RWc10hJtB7buzaztGpXGjEtA+ke3cKNQSmllH1cSZYOYW08W52+zmuUU1xkKMna4EEppez0LHARzu6qzuqIh7DK744CjwIzbIvOWzgSwD/EpeYOJSWGtbvSGNy9DdZknVJKNX6ulOF9CdwlIhuBt5ztwhERH2AScAfWJ3bKKTYqhLTsfLLzi2gR6NZu7UoppWrBGJMN/HLSsReBF+2JyEs5EqFtH/DxPfW1J9nqyORobiGDe0Q2QGBKKWUPV2aWpgF7gNcAh4isEJEVWK28X3eee9J9ITZ+XSK1yYNSStlFRFqIyG4Rud/uWLxaSTGkbnJ5vdJq53qlQbpeSSnVhNQ5WXJuutcfq6QhHfid8ysN+AfQ33mNcirdaylZmzwopZTHOWeVIoFsu2Pxamk7oTDX5fVKq3cd4fS2YUSHBbk5MKWUso9LmyAYYzKNMY8ZY3oZY0KcX72NMY8DN4vINjfH2ajFRupeS0opZbN1WB/0qeo4nL2bXJhZyiss5sfkozqrpJRqchpix7gorL2WlFNooB9twgK1DE8ppewzFbheRG4X7T5QNUci+IdCZPc6v/TH5AwKikp0fyWlVJOj3QY8JC4yRDviKaWUfV7E6nr3NjDD2TL85L+UjTGmyr3+mgVHArQ726XmDquT0gjw9eH8LhENEJhSStlHkyUPiYsMZWXSEbvDUEqp5qorYID9zue6H2B5xUWQuhn63+7Sy1clpdEvNpyQAP1nhVKqadG/1TwkLiqUhRsOkltQpL9MlFLKw4wxcXbH4NXSfoGiEy6tV0rPzmdbSiYPjaz73kxKKeXtGmLNkqpCaZOHfVqKp5RSyts4Eq3HdnXvhLdmt9UAd3CPNu6MSCmlvEKtpjhE5ME63HOQi7E0aXHl9lo6o11Lm6NRSimlynEkQEALl5o7rE46QssgP87q0KoBAlNKKXvVth7s+Tre19Q1kKbut/bhOrOklFKeJiJ7anGZMcZ0a/BgvFFKorO5Q90KTowxrE5KY2C3KHx9tMmgUqrpqW2ydFGDRtEMhAX5E9UiQNuHK6WUPfZT+YM8P6AL0B7YBfzq6aC8Qmlzh99NqvNL96bl4Diexx8u0pbhSqmmqVbJkjFmRUMH0hzERoayN02TJaWU8jRjzLDqzonITcALwBSPBeRNjuyAojyX1iut3pUGwBDdX0kp1URpgwcPio0M0QYPSinlZYwxHwKfYSVMzY8jwXp0oRPeqqQ0OrYOpnNEiJuDUkop76DJkgfFRYaScjyPvMJiu0NRSilVUSIw1O4gbJGSCAFhENG1Ti8rKi5h3e50hvSIQkTXKymlmiZNljyotMnD/gydXVJKKS9zDlBidxC2cCRA+3Pq3Nzh54PHycovYnB3bRmulGq6dHdUD+oSZbUPT07LoWdMmM3RKKVU8yEi1c0aRQC/B+4EPqnlvYKAlUAg1u/Rj40xT4pIBPAREAckA9cbY47WL/IGVlwIqVvgvDvr/NLVSWmIwMBukQ0QmFJKeQdNljwoNqJ0ryWdWVJKKQ+Lp+ptLUrrx74B/ljLe+UDw40x2SLiD6wWkaXAWOBbY8yzIjIVmAo8XL+wG9jh7VCc79J6pTW70ujdvhWtQwMaIDCllPIOmix5UKsQf1qH+LNX24crpZSn3V7FMQNkADuNMTtreyNjjAGynU/9nV8GGAMMcx6fi5WgeXeylJJoPdYxWcrOL2Lj/qPcObRu65yUUqqx0WTJw2IjQ3WvJaWU8jBjzFx33k9EfIENQHfgP8aYH0QkxhiT4ny/FBGJdud7NghHAgS2gtZd6vSyH/akU1RiGNJdW4YrpZo2r0uWROQ0rJrvUl2BaUA4Vk35EefxR40xSzwcXr3FRYbwY7J3l7ArpVRTIyJ+QIgxJrOa8y2BXGNMUW3uZ4wpBs4RkXDgUxHpXYdYJgOTAWJiYoiPj6/tS6uUnZ3t8j36/bKK4uDO/LxyZZ1eN397Pv4+kL1vM/EHPdMJrz7jbGx0rE1PcxknNL2xel2yZIz5BasrUeknd78Cn2KVULxkjHnexvDqLS4qlM9/dpBfVEygn6/d4SilVHPxAjAa6FnN+R+Br4A/1+WmxphjIhIPjAIOiUg756xSO+BwNa+ZCcwE6N+/vxk2bFhd3rKS+Ph4XLpHUQGs2gfnT6nz65/ZuIIB3YIYOeL8ur+vi1weZyOkY216mss4oemN1dtbh48Adhtj9tkdiLvERYZiDBzIOGF3KEop1ZxcAiyq4fwirGTqlESkjXNGCREJxuqmtwP4AhjvvGw88LnL0XrCke1QXGC1Da+D1ON5JB3OZkgPLcFTSjV93p4s3Qh8WO75vSKySURmi0hru4Kqj9K9lpLTdN2SUkp5UCdgdw3n9zivqY12wHIR2YQ1I7XMGPMV8CxwsYgkARc7n3svR4L1WMfmDqt3pQEwSNcrKaWaAa8rwyslIgHAlcAjzkOvA3/D6jj0N6ySijuqeJ3basEbouYyu8DqXPvt+k34HfZ3673ro6nVl9ZEx9r0NJdxQvMaq5sVYCU51WlLLTelNcZsAiplGMaYdKyKiMbBkQhBdW/usGZXGpGhAZzRtmUDBaaUUt7Da5MlrHKIjcaYQwCljwAi8hZWbXkl7qwFb4iaS2MMj679H37h7Rg2rNbrgRtcU6svrYmOtelpLuOE5jVWN0sArheR54wxBeVPOD+cuwHYZEtkdnEkQLtzQGrfoKGouIQVO48wpEcUPj6eaeyglFJ28uYyvJsoV4LnXCxb6mpgi8cjcgMRoUtUKMnaPlwppTzpP0AvYLGI9BeRAOdXf6wP384EXrU1Qk8qyodDW+u8Xmn93gwycgoY3bttAwWmlFLexStnlkQkBKve+65yh2eIyDlYZXjJJ51rVGIjQ0k8cMzuMJRSqtkwxiwSkX9glXb/gPW7xGB9aCjAc8aYj2q4RdNyeBuUFNZ5vdKSLSkE+/tyYU/v30JKKaXcwSuTJWNMLhB50rFbbQrH7eIiQ/hqk4OCohIC/Lx5ck8ppZoOY8xjIvIZMA5rM1kBfgE+MMb8aGtwnuZItB7b1X5mqbjE8PWWQww/PZrgAN36QinVPHhlstTUxUaGUmLg4NFcurZpYXc4SinVbDiTouaVGFXFkQBB4dA6rtYv+TE5g7TsfC49q6Y+GUop1bTotIYN4qKs9uH70nNtjkQppZoHEYkQkT41nO/TWLekcElKorVeqQ7NHZZuTiHI34dhp7VpwMCUUsq7aLJkg7jIUABt8qCUUp4zA3inhvNzgH94JhSbFeXDoW11Wq9UUmJYuiWVYT2jCQ3UohSlVPOhyZINIkIDCAv005klpZTynIuAL2s4/wXwew/FYq9DW63mDnVYr7Rh/1EOZ+Uz+iztgqeUal40WbKBiBAbFcLeNJ1ZUkopD2kP7K/h/EHnNU1firO5Qx1mlpZsTiHAz4cRZ8Q0UFBKKeWdNFmySWxkKPu0DE8ppTwlB4it4XwskO+hWOzlSIDg1hDeuVaXl5QYlm5O5cKebWihJXhKqWZGkyWbxEWGcPDoCQqLS+wORSmlmoMfgPEiEnbyCeex24D1Ho/KDo5Ea1apls0dEg4cIzUzj0u1BE8p1QxpsmSTuMhQikoMjmMn7A5FKaWag+eBjsBaEblWRLqLSDcRuRZY6zz3T1sj9ITCPGtD2jqsV1q6OYUAXy3BU0o1TzqfbpO4qNKOeLnEOrvjKaWUahjGmOUi8gfgZeCjk04XAvcaY77xfGQedngrlBTVer2SMVYXvCE9omgZ5N/AwSmllPfRZMkmsZHWXkvJaTlc2FP3rFBKqYZmjHlTRL4Crge6AwL8AnxsjPnV1uA8xZFgPbav3czSzweP8+uxEzxwcc8GDEoppbyXJks2adMikJAAX91rSSmlPMiZFL1U1TkRCTTGNO0mD45ECImEVp1qdfnSzSn4+woXawmeUqqZ0jVLNhERZ0c83WtJKaXsJCLnishrgMPuWBqcI9Far1SL5g7GGJZsSWFQ9yhahWgJnlKqedJkyUZdokJ0ZkkppWwgIhEicp+I/IzVBW8KcMTmsBpW4Qk4sr3W65W2/JrJgYwTXNq7XQMHppRS3kuTJRvFRoZyICOX4hJjdyhKKdUsiMglIvIRUFqOFwA8DZxljDnd1uAa2qHS5g61W6+0ZEsKfj7CyF5agqeUar50zZKN4iJDKCy22od3igixOxyllGqSRKQLcDswHqtF+BHgY+Bm4DFjzCc2huc5pc0datE23BjD0s0pXNAtkvCQgAYOTCmlvJfOLNmotGW4luIppZT7icjNIvItkAT8FfgJuBrogDWbVLtdWZsKRyKEREGrjqe8dHtKFsnpuVx6lpbgKaWaN02WbBQX+dteS0oppdxuHhAL3A+0N8ZcY4z5whhTDDS/+ueURKsErxbNHZZsTsHXRxh5ppbgKaWaN02WbBTTMpAgfx/2penMklJKNYACIA4YA4wWkWB7w7FR4Qk4XLvmDsYYlmxOYUDXCCJbBHogOKWU8l6aLNlIRIiLDNWZJaWUahhtsWaVIoH3gEMiMktEhtLcSvBSt4AprtV6pZ2HstmTlsNo7YKnlFKaLNktNlLbhyulVEMwxhwzxrxqjOkH9MdKmK4ClgOrsUrxWtX1viLSSUSWi8h2EdkqIn9yHo8QkWUikuR8bO3G4dRPaXOHWswsLd6cgo/AJb3aNnBQSinl/TRZsllcZCj707V9uFJKNSRjzEZjzD1Ae+BWYKvz1Nsikigij4tIr1rergj4szHmDGAAcI+InAlMBb41xvQAvnU+9w4piRDaBlq2P+WlSzencF6XCNqEaQmeUkppsmSz2MhQCopLSM3MszsUpZRq8owx+caYD4wxI4BuwDNAa+D/gJ9reY8UY8xG5/dZwHasDntjgLnOy+ZizWJ5B0eCNat0iuYOSYeySDqcrV3wlFLKySuTJRFJFpHNzk/7fnIe897yhnqIi7L2V9ImD0op5VnGmGRjzDSsJhCXAnXeb0lE4oC+wA9AjDEmxXnvFCDaXbHWS0EuHNlRq/VKSzanIgKjtARPKaUA796U9iJjTFq556XlDc+KyFTn84ftCc19yrcPH9jd5mCUUqoZMsYY4GvnV62JSAtgEXC/MSZTatGS2/m6ycBkgJiYGOLj4+sU78mys7NrvEfL49vpZ0rYnOFH+inea+G6XHqE+7Bt4zq21Ssq9zvVOJsSHWvT01wt5Wt6AAAgAElEQVTGCU1vrN6cLJ1sDDDM+f1cIJ4mkCy1bRlEgJ+PNnlQSqlGRET8sRKl940xpTNSh0SknTEmRUTaAYereq0xZiYwE6B///5m2LBh9YolPj6eGu/xwy8AnDXy1hrXLO0+ks3Br1fw5BVnMGxQl3rF1BBOOc4mRMfa9DSXcULTG6tXluFhdSj6n4hscH4CB95a3lBPPj5CbEQIyVqGp5RSjYJYU0izgO3GmBfLnfoCGO/8fjzwuadjq5IjAVrEQFjN65C+3pIKwKjeWoKnlFKlvHVmaZAxxiEi0cAyEdlR2xe6s7zBU9OILchj2/4cW6csm9qUaU10rE1PcxknNK+xerFBWB31NotIovPYo8CzwAIRmQjsB66zKb6KHInWeqVTlAku3pRCv87htGvVfPfuVUqpk3llsmSMcTgfD4vIp8B52FDe4KlpxDU523hv3T6GDr0QHx979klsalOmNdGxNj3NZZzQvMbqrYwxq6l+U9sRnozllApyIO0XOHNMjZclp+WwLSWTxy87w0OBKaVU4+B1ZXgiEioiYaXfAyOBLXhreYMbxEaGkldYwuGsfLtDUUop1ZSkbgZTAu1r7oS31FmCN1pbhiulVAXeOLMUA3zq7CrkB3xgjPlaRH7EG8sb3KC0I97etBzatgqyORqllFJNhiPBejxF2/Alm1M4u1M4HcK1BO9kx48fJy0tjYKCAo+9Z6tWrdi+fbvH3s9OzWWszWWc4D1j9fX1JSwsjIiICAIDXd9k2+uSJWPMHuDsKo6n423lDW4SG+ncayk9hwu6RdocjVJKqSbDkQgt2kLL6meMDmTksvnX4zx66ekeDKxxyMvL49ChQ3Ts2JHg4GBq2x6+vrKysggLC/PIe9mtuYy1uYwTvGOsxhgKCwvJzMxk//79dO7c2eWEyevK8Jqj9uHBBPj6kJyea3coSimlmhJHArTvW+MlS7ekADC6t5bgnezIkSO0adOGkJAQjyVKSqn6ExECAgKIioqidevWZGRkuHwvTZa8gK+P0CkimH2615JSSil3yc+GtJ2nXK+0ZHMqZ3VoRaeIEA8F1njk5eXRokULu8NQStVDy5YtycrKcvn1mix5ibjIUJ1ZUkop5T6pmwBT48zSr8dOkHjgGJdqY4cqFRUV4efndSsWlFJ14O/vT3Fxscuv12TJS8RGhrIvPQdjjN2hKKWUagoczi2gamjusHRzaQmebkRbHS2/U6pxq+//w5oseYm4qBByC4o5ou3DlVJKuYMjAcLaQ1hMtZcs3ZLKme1aEhcV6sHAlFKq8dBkyUvEOtuHaymeUkopt0hJrHG9UsrxE2zYd5RLz9JZJaWUqo4mS16iS1mypE0elFJK1VN+FqQl1bhe6WvnRrS6XknZZerUqbRs2ZLU1FSXXp+Xl4eIMGXKFDdHptRvNFnyEu3Dg/DzEe2Ip5RSqv5SnM0dalyvlMrpbcPo2ka7vTVnIlLrr+TkZLvDVcrjtMWLl/Dz9aFTRAjJaVqGp5RSqp4cCdZjNWV4hzPz+HFfBveP6OnBoJQ3eu+99yo8X7VqFTNnzmTy5MkMGTKkwrk2bdq49b2nT5/On//8Z5fvGxQUxIkTJ7RjoWpQ+l+XF4mNDNEyPKWUUvWXkggtO0CL6CpPf701FWPgsj66Xqm5GzduXIXnRUVFzJw5kwsuuKDSueoYY8jNzSU0tG6NQvz8/AgKCqrTa05W39c3d67+7JoTLcPzInGRoexLz9X24UopperHkVDjeqUlm1PoEd2C7tFhHgxKNQVff/01IsKHH37Iyy+/zOmnn05gYCD//ve/AVi7di233XYbPXr0ICQkhJYtWzJ06FC++uqrSveqas3S1KlTERH27t3LX/7yFzp06EBQUBD9+vVj2bJlFV5f1Zql8sdWrlzJ4MGDCQkJoU2bNkyZMoXc3MoVPN988w3nn38+QUFBtGvXjoceeoiEhAREhGefffaUfyYHDhzggQce4OyzzyY8PJzg4GB69+7NCy+8QElJSaXr8/Ly+Pvf/06fPn0IDg4mPDyc8847jzfffLPCdceOHWPq1KmcdtppBAUFERUVxdChQ1m0aFHZNQMGDOD000+v9B47duyoFL87f3YADoeDP/zhD8TFxREYGEhMTAyXXHIJq1atAmDkyJG0bNmyyj/zlStXIiL885//POWfr910ZsmLxEWGkJ1fRHpOAVEtAu0ORymlVGOUlwnpu6DPjVWePpKVz/q9Gdw7vIeHA1NNyXPPPcfx48e54447iI6OpmvXrgAsXLiQ3bt3c+ONN9K5c2eOHDnCO++8wxVXXMGiRYsYO3Zsre5/0003ERwczF//+ldOnDjBSy+9xJVXXsmuXbvo0KHDKV+/fv16Fi5cyKRJkxg3bhzffvstb775JgEBAbzyyitl13377beMHj2a6OhoHn30UcLCwpg/fz7x8fG1/rPYsGEDX375JWPGjKFbt27k5+ezePFiHnroIfbv38/LL79cdm1eXh4jRoxg7dq1jB49mvHjxxMQEMCmTZv47LPPuOuuuwBIS0tj0KBB7Ny5kxtvvJF7772XwsJCNmzYwOLFi7nmmmtqHd/J3PGz27VrF4MHDyY9PZ0JEybQr18/srKyWLt2LStWrODSSy9l8uTJLFu2jIULFzJ+/PgKMcyePRs/Pz9uu+02l8fhKZoseZFY5z4X+9JzNFlSSinlmtRN1mM1M0v/3ZpKiYHLtAuey57+civbHJkNdv/i4mJ8fX3r9Joz27fkySt6NVBElTkcDnbs2EFERESF49OnT69U0nXffffRp08fpk+fXutkqUOHDnz88cdlG4oOGjSIoUOH8vbbb/Pkk0+e8vWbNm3ixx9/pG9f6/+DKVOmMGLECGbOnMk///lPAgOtf2c9+OCDBAQEsG7dOjp16gTAPffcw8CBA2sVJ1gzKElJSRU2P33ggQe4/vrref3115k2bRoBAQEAzJgxg7Vr1/L0008zbdq0CvcpPwv117/+lZ07dzJ37txKCUVVs1V14Y6f3eTJkzl8+DDfffcdw4YNq/Ca48ePAzBmzBhiYmKYNWtWhWQpMzOThQsXcsUVVxATU/0+cN5Cy/C8SJyzffhebfKglFLKVado7rB0Swpd24TSM0a74CnX3XHHHZX+sQ1U+Md2bm4u6enp5OXlceGFF5KYmEh+fn6t7n///fdXSD4GDx5MQEAASUlJtXr9hRdeWJYolRo+fDj5+fkcOHAAgH379rFp0yauvfbaskQJICAggPvuu69W7wMQEhJSFmt+fj4ZGRmkpaUxcuRICgsL2bhxY9m177//PtHR0TzyyCOV7uPjY/2zvKioiAULFtC3b98qZ15Kr3NVfX92KSkpLF++nDFjxlRKlMrH5+/vz4QJE1i1ahU7d+4sOz9//nxyc3OZOHFivcbhKTqz5EU6hAfj6yOs3Z3GNf06VPhLQimllKoVRyK06gShUZVOpWfns25PBndf2E1/x9RDQ8/gZGVlERbm3evJevasupNiSkoKjz32GF9++SVpaWmVzh8/fpzo6Kobj5RXWhpWSkRo3bo16enptYrv5NcDREZGApCenk737t3Zu3cvAKeddlqla6s6Vp2CggL+/ve/M2/ePPbs2VNp7fnRo0cBq5nC7t27GTp0KP7+/tXez+FwkJOTwznnVN/6vz7q+7MrTVhPTkarcueddzJjxgxmz55dtn5q1qxZdOjQgVGjRtVjFJ6jyZIXCfDz4ZbzO/Pu9/vw8xGeufos/H118k8ppVQdOBKg3dlVnvrftkMUlxhGn6Vd8FT9hISEVDpWXFzMiBEj2Lt3L3/6058499xzadWqFT4+Prz55pt8/PHHtS4hq64MsbZNsGoqYyy9h7saat1777289dZb3HLLLUybNo02bdrg7+/PunXreOKJJyqN+VQfVJTGVZsPNKq7pqioqNrX1PdnV5f4unXrxvDhw5k7dy7Tp09nx44drF+/nscff7zOpaZ20WTJyzx9ZS/CQwJ45dskUjPzee2WfrQI1B+TUkqpWsg7Dhm74Zybqzy9ZHMKcZEhnNmupYcDU83BTz/9xPbt2/n73/9eqczs1VdftSmq6nXp0gWAX375pdK5qo5VZ968eYwcOZJ58+ZVOL5ly5YKz0WE7t27s2XLFgoLC6udXerQoQOhoaEkJCSc8r0jIiLYvXt3peN79uypdfxQt59d6axbbeIDa33TDTfcwJIlS1i+fDkiwh133FGn+Oyk0xZeRkR48OKePHfNWazZlcYNb37P4cw8u8NSSinVGKT8bD1WsV7paE4Ba3enM/qsdlqCpxpE6UzByTM2GzduZPHixXaEVKO4uDh69+7Nxx9/XLaOCayyuvId82pijMHPz6/SmDMzMyt0wSt1yy23cPjwYWbMmFHlvcDaf+qGG24gISGB999/v9rrwCqpO3LkCJs2bSo7VlxczL/+9a9axV+qLj+7tm3bMnz4cD7//POyNuHVxQdw1VVX0aZNG15//XXmzZvH8OHDyxLVxkCnLKpTXEj7X5dAyRDw8fw04Q2/60x0yyDueX8jV7+2lrl3/E73w1BKKVUzR6L12K7yWoJl260SvEt7axc81TD69OlDz549mT59OseOHaNHjx5s376dt956iz59+lRodOAtXnzxRUaPHs2AAQOYMmUKYWFhfPjhh2UfKJzqgwURYezYscydO5dbbrmFYcOGkZqayttvv010dDTJyckVrv/LX/7C4sWLefzxx/n+++8ZMWIEAQEBbN68mf3797NkyRLAau+9YsUKbr31VhYvXszAgQMpLi5m48aN+Pn5MWvWLADuvvtu/v3vf3P55Zdz33334evry4IFC+pcYljXn90bb7zBoEGDGDFiBLfffjt9+/YlJyeH77//nm7duvHcc8+VXRsQEMD48eN5/vnnAZg0aVKdYrObzixVZ/uX9Ex6Ez77A5QU2xLCRadF89HkC8gvKuGa179n/d4MW+JQSilVkYjMFpHDIrKl3LEIEVkmIknOx9YeD8yRAK06Q2hkpVNLNqfQKSKY3h20BE81jICAAJYsWcKoUaOYPXs2999/P2vXruXDDz/k4osvtju8Kl188cUsXryY9u3b88wzz/Dcc88xePBgXnzxRQCCg4NPeY9XX32VP/3pT6xatYo//vGPzJs3jz/+8Y88/fTTla4NCgpi+fLlPPXUU+zevZupU6fy+OOPk5CQwNVXX112XVRUFOvXr+f+++9n3bp1PPjgg/ztb38jOTmZyy+/vOy6nj17smjRIsLDw3n00Ud54YUXylqk10Vdf3Y9evRgw4YNjB8/nsWLF3PfffcxY8YMcnJyquyQN3nyZMAqGyw/zkbBGNNkv84991xTH3vmTDHmyZbGfDzRmKLCet2rPvan55iLnl9uejy2xHz1s6NB3mP58uUNcl9vpGNteprLOI1pnGMFfjJe8DvBnV/AUKAfsKXcsRnAVOf3U4HnTnWf+v6eMuak/yZePseY+eMqXXMsp8B0f3Sx+fvibfV+P7vY8d/+tm32/HllZmba8r528Naxzps3zwDm008/dcv9vHWcDaGqsSYnJxsRMffdd58NEdXu/+XqflfpzFIN9sXdACOmweaF8MkkKC60JY5OESF8cvdA+nRoxT0fbOTtVXVbtKeUUsq9jDErgZOn+8cAc53fzwWu8mhQJ45Bxp4q1yt9s/0QhcWG0boRrVIVlJSUUFBQUOFYfn4+//rXvwgMDGTIkCE2Rda0/Oc//8EYUzbD1Jh43ZolEekEvAu0BUqAmcaYl0XkKeBO4Ijz0keNMUsaPKAhfwYff1j2hFWOd+1s8K2+N35DCQ8JYN6k83lwQSLTF2/n12MnePyyM/H10UW6SinlJWKMMSkAxpgUETn1ZjLuVNbcofJ6pSWbU+gQHszZHVt5NCSlvF1mZiZnnHEGt9xyS1mzhA8//JCtW7fy5JNPlu3NpOqupKSEBQsWsHfvXl5++WXGjBlDr14Nu0dZQ/C6ZAkoAv5sjNkoImHABhFZ5jz3kjHmeY9HNOg+8PGD/z4CCyfAtXPAL8DjYQT5+/LqTf14ptV2Zq3eS+rxPF664RyC/BtHn3qllFIgIpOByQAxMTHEx8fX637Z2dnEx8fTaf8ndANW78mm6MBv98wtNKz4JZcRsX6sWLGiXu9lp9JxelKrVq3Iysry6HuC1c3Mjve1g91jLSoq4qKLLmLRokUcOnQIsNYBvfzyy9x+++1ui83ucXpS6Vjz8vK46aabCA4O5sILL+SFF16w7c8gLy/P5b8/vC5Zcn4qV/rJXJaIbAc62BsVcMEfrIRp6V9gwW1w/VzwC/R4GD4+whOXn0m7VkE8s2Q7h9/+gbdv60/rUM8nb0oppSo4JCLtnLNK7YDDVV1kjJkJzATo37+/qWoxdF3Ex8dbC6oXvgPhsQy++MoK5z9L+JUik8jk0edxbqzne064S9k4PWj79u2EhXm+E21WVpYt72sHu8caFhbGBx980ODvY/c4Pal0rGFhYXXuytdQgoKC6Nu38qx7bXj1miURiQP6Aj84D90rIpucXYg8/zf++ZPhshdg51KYfwsU2rf/0aQhXfnPzf3Y/Otxrnl9LQcycm2LRSmlFABfAOOd348HPvfouzsSqlyvtHhzCu1aBdG3U7hHw1FKqabA62aWSolIC2ARcL8xJlNEXgf+Bhjn4wtApe1/3VneUPWUf3fa9byHnjtf4+hrl7Cl96OU+Hp+hgkgBHjo3ABe3pjDZf9azgPnBtGllWsleXaUN9hFx9r0NJdxQvMaqzcTkQ+BYUCUiBwEngSeBRaIyERgP3CdxwI6cRSOJsO5Eyoczs4vYsXOI9xyfmd8dI2rUkrVmVcmSyLij5UovW+M+QTAGHOo3Pm3gK+qeq07yxuqn/IfBglnEvH5vQw9+B+4aT4EhLj8PvUxDBg+KJsJc9Yz46cCXrvlLC46ve5riu0ob7CLjrXpaS7jhOY1Vm9mjLmpmlMjPBpIqbLNaCvOLH234zAFRSVcql3wlFLKJV5XhifWVsmzgO3GmBfLHS//N/3VwJaTX+tRfcfB1W9A8ir44HooyLEtlO7RLfjkDwPpFh3KpHd/4sP1+22LRSmllA1SnMnSSWV4SzenEB0WyLmdG+9aJaWUspPXJUvAIOBWYLiIJDq/LgVmiMhmEdkEXAQ8YGuUAGffCFfPhH1rYN61kG9fl5PosCA+mnwBQ3pE8cgnm3nhf794zaI6pZRSDcyRAK3jIPi3pCi3oIjlvxxmdO+2WoKnlFIu8royPGPMaqCqv9Ubfk8lV/S5Dnx8YNGdMO8auOVjCGppSyihgX68fVt/Hv9sC//+bhe/HjvBs2P7EODnjTmxUkopt3EkQod+FQ4t33GEvMIS3YhWKaXqQf8V7Q69r4Hr5sCvG+C9qyHvuG2h+Pn68I+xZ/HgxT35ZOOv3PHOj2TlFdoWj1JKqYblV5gJx/ZVWq+0ZEsKUS0C+V1chE2RKaVU46fJkrucOQauf9faQf3dq6zORDYREe4b0YN/XtuHdXvSue6N70k9bl+bc6WUUg0nLGuP9U373/YQOVFQzHfbDzOqdwy+WoKnlFIu02TJnU6/DG6YB4e2wLtjIDfD1nCu69+J2RN+x8GjJxj72hp2HmoeO0crpVRzEpa1y/qm3dllx1bsPMyJwmIu7a0leMp+gwcPpnv37hWOjRs3Dj+/2q0G2bVrFyLC9OnT3R5bUVERIsKkSZPcfm/VNGiy5G6njYIb3ofDO2DulZCTbms4Q3u24aO7BlBUYrjm9bV8v9veeJRSSrlXWNYuiOgKwb9tOrtkcyoRoQGc10VL8FTNrrvuOkSExMTEaq8xxtClSxfCw8M5ceKEB6Nzj4yMDJ566ilWrlxpdyiqEdJkqSH0HAk3fQjpSTD3Csg+Yms4vdq34tN7BtG2ZRDjZ6/n88RfbY1HKaWU+4Rl7a6wXimvsJhvtx/ikl5t8fPVX/OqZhMnTgRgzpw51V6zfPlykpOTufHGGwkODnbL+86ZM4ecHM9su5KRkcHTTz9dZbLk5+fHiRMneOONNzwSi2p89G/RhtJ9BNz8EWTsgbmXQ/ZhW8PpEB7Mx1MG0rdzOH+an8gbK3Zra3GllGrsctIJyj9cYb3Syp1HyCko5tKz2toYmGosRo4cSadOnXj//fcpKCio8prSRKo0sXIHf39/AgMD3Xa/+ggKCqp1SaCq7MSJExQXF9sdRoPRZKkhdR0GtyyEY/vhncsgK9XWcFqF+PPuxPO44uz2PLt0B9M+30pxiSZMSinVaKUkWI/lNqNduiWV8BB/BnSNtCko1Zj4+PgwYcIE0tPT+eKLLyqdz8zM5JNPPqF379787ne/Kzv+wQcfcMUVV9C5c2cCAwNp06YNY8eOZcuWLbV63+rWLK1cuZKBAwcSHBxM27Ztue+++6qcgSoqKmL69OkMGTKEmJgYAgICiI2N5Z577iEj47c149988w09evQA4IknnkBEEJGyNVQ1rVl688036du3L8HBwYSHh3PJJZewdu3aSnGUvn716tUMGTKEkJAQoqKimDx5cq1nz77++muuv/56unTpQlBQEK1bt+aSSy5h1apVVV6flJTE+PHj6dixIwEBAbRv356rrrqKhISECtdt2LCBa6+9lpiYGAIDA+ncuTM333wze/fuBWpeD/b4448jIhw8eLDsWOnP7fDhw0yYMIHo6GhCQ0NJSUkB4NVXX+XKK6+kffv2ZXHddttt7N+/v8pxfPvtt4wePZrIyEiCgoLo2rUrd955JxkZGaSkpODv78+ECROqfO3kyZPx9fWtEF9D0DS6oXUZAuMWWZvWvnMZjP8SWra3LZxAP19evuEc2ocH8eaKPaRm5vHKjX1P/UKllFLex+FcZ+Js7pBfVMw32w4x+qy2+GsJnqql22+/nenTpzNnzhyuvfbaCufmz59Pbm5upVmlV199lZiYGO666y5iYmLYtWsXM2fOZODAgSQkJNCtW7c6x7F27VouvvhiwsPDmTp1Ki1btuTDDz9k9erVla7Ny8vjhRde4JprruGqq64iNDSU9evXM3PmTNasWcOPP/6Iv78/vXv35vnnn+ehhx7i2muvZcyYMQCEhYXVGMuf//xnXnzxRQYMGMA//vEPjh8/zptvvsmwYcP46quvGDlyZIXrN2zYwKeffsrEiRMZN24c3333HW+99RZ+fn689tprpxz77NmzOXbsGBMmTKBDhw4cPHiQt99+m+HDh7NixQoGDhxYdu0PP/zAxRdfTHFxMRMnTqRXr16kp6cTHx/PunXr6NvX+nfd559/znXXXUdYWBiTJk2iW7dupKam8vXXX7Nt2za6dOlyyriqYozh97//PR07dmTatGlkZ2cTEhICwIwZMxgwYACjRo0iIiKCTZs2MXv2bL777js2b95M69a/bZz92muvce+999KpUyfuvvtuOnfuzP79+/niiy9wOBz07t2byy67jIULF/LKK6/QsuVv+5jm5uby0Ucfcckll9CxY0eXxlFbmix5QuxAuPUTK2GacylM+ApaNewPtiY+PsIjo8+gQ3gwT36xlZveWscdPXSGSSmlGh1HArnB7QkJagXA6qQ0svKLuFQ3om1YS6dC6uYGu31wcRH41vGfaG3PgtHPuvR+Xbp04aKLLuK///0vDoeD9u1/+1B3zpw5BAQEMG7cuAqvWbZsGaGhoRWOjRs3jn79+vHyyy/zyiuv1DmO+++/H4A1a9aUzfz84Q9/qJAolAoJCcHhcFRYQzVlyhTOP/98pkyZwpdffsnYsWNp27YtY8aM4aGHHuLss8+uNI6qbNu2jRdffJGhQ4fyzTff4O/vD1hliGeeeSZ33303SUlJ+Pj89oHEpk2b+OGHH+jfvz8Ad911F8eOHWPWrFm88MILp3zPOXPmVPrzvOuuu+jVqxfPPvts2axfSUkJEyZMoLCwkJ9++olevXqVXf/oo49SUlICQHZ2NnfccQcREREkJCTQrt1vfydMmzat7DpXlJSU0K9fP955551K57Zv305JSUmFZPTyyy9n1KhRzJkzhwcffBCAffv2cf/999OrVy/WrFlTIRGaPn16WXyTJ0/m888/Z/78+UyePLnsmoULF5KZmemRLob6sZOndB4At34KuelWwnSs6ulIT7rtgjjeGHcu21MyeWhFLpe+vIp73t/IjK93sODHA6zfm8HhzDxd26SUUt4q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\n",
      "text/plain": [
       "<Figure size 1008x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def train_val_plot(loss_plot, val_loss_plot, acc_plot, val_acc_plot):\n",
    "    fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(14, 5))\n",
    "    #plt.tight_layout()\n",
    "    ax[0].plot(loss_plot, label=\"Training Loss\")\n",
    "    ax[0].plot(val_loss_plot, label=\"Validation Loss\")\n",
    "    ax[0].legend(fontsize=18)\n",
    "    ax[0].grid(True)\n",
    "    ax[0].set_title(\"Training Loss\", fontsize=20);\n",
    "    ax[0].set_xlabel(\"Epoch\", fontsize=18);\n",
    "    ax[0].set_ylabel(\"Loss\", fontsize=18);\n",
    "    ax[1].plot(acc_plot, label=\"Training accuracy\")\n",
    "    ax[1].plot(val_acc_plot, label=\"Validation accuracy\")\n",
    "    ax[1].legend(fontsize=18)\n",
    "    ax[1].grid(True)\n",
    "    ax[1].set_title(\"Training Accuracy\", fontsize=20);\n",
    "    ax[1].set_xlabel(\"Epoch\", fontsize=18);\n",
    "    ax[1].set_ylabel(\"Accuracy (%)\", fontsize=18);\n",
    "    #plt.savefig(\"Training.png\", format='png', dpi=1200)\n",
    "    \n",
    "train_val_plot(loss_plot, val_loss_plot, acc_plot, val_acc_plot)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test Accuracy: 77.56 %\n"
     ]
    }
   ],
   "source": [
    "def test_model(model, testloader):\n",
    "    model.eval()\n",
    "    # Computing the model accuracy on the test set\n",
    "    correct, total = 0, 0\n",
    "    for x, y in testloader:\n",
    "        outputs = model(x)\n",
    "        winners = outputs.argmax(dim=1)\n",
    "        count = [1 for i, j in zip(winners, y.long()) if i == j]\n",
    "        correct += sum(count)\n",
    "        total += len(y)\n",
    "    print('Test Accuracy: %2.2f %%' % ((100.0 * correct) / total))\n",
    "    \n",
    "test_model(model3, testloader)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Complete Implementation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [],
   "source": [
    "def train_model(model, criterion, optimizer, scheduler, num_epochs=5):\n",
    "    since = time.time()\n",
    "\n",
    "    best_model_wts = copy.deepcopy(model.state_dict())\n",
    "    best_acc = 0.0\n",
    "\n",
    "    loss_plot, acc_plot = [], []\n",
    "    val_loss_plot, val_acc_plot = [], []\n",
    "    for epoch in range(num_epochs):\n",
    "        print('Epoch {}/{}'.format(epoch, num_epochs - 1))\n",
    "        print('-' * 10)\n",
    "\n",
    "        # Each epoch has a training and validation phase\n",
    "        for phase in ['train', 'val']:\n",
    "            if phase == 'train':\n",
    "                model.train()  # Set model to training mode\n",
    "            else:\n",
    "                model.eval()   # Set model to evaluate mode\n",
    "\n",
    "            running_loss = 0.0\n",
    "            running_corrects = 0\n",
    "\n",
    "            # Iterate over data.\n",
    "            for inputs, labels in dataloaders[phase]:\n",
    "                inputs = inputs.to(device)\n",
    "                labels = labels.to(device)\n",
    "\n",
    "                # zero the parameter gradients\n",
    "                optimizer.zero_grad()\n",
    "\n",
    "                # forward\n",
    "                # track history if only in train\n",
    "                with torch.set_grad_enabled(phase == 'train'):\n",
    "                    outputs = model(inputs)\n",
    "                    _, preds = torch.max(outputs, 1)\n",
    "                    # Next two lines enable us to use Binary Crossentropy\n",
    "                    #outputs = outputs.squeeze(1)\n",
    "                    #loss = criterion(outputs, labels)\n",
    "                    loss = criterion(outputs, labels.long())\n",
    "\n",
    "                    # backward + optimize only if in training phase\n",
    "                    if phase == 'train':\n",
    "                        loss.backward()\n",
    "                        optimizer.step()\n",
    "\n",
    "                # statistics\n",
    "                running_loss += loss.item() * inputs.size(0)\n",
    "                running_corrects += torch.sum(preds == labels.data.long())\n",
    "            if phase == 'train':\n",
    "                scheduler.step()\n",
    "\n",
    "            epoch_loss = running_loss / dataset_sizes[phase]\n",
    "            epoch_acc = running_corrects.double() / dataset_sizes[phase]\n",
    "            \n",
    "            if phase == 'train':\n",
    "                loss_plot.append(epoch_loss)\n",
    "                acc_plot.append(epoch_acc)\n",
    "            else:\n",
    "                val_loss_plot.append(epoch_loss)\n",
    "                val_acc_plot.append(epoch_acc)\n",
    "\n",
    "            print('{} Loss: {:.4f} Acc: {:.4f}'.format(\n",
    "                phase, epoch_loss, epoch_acc))\n",
    "\n",
    "            # deep copy the model\n",
    "            if phase == 'val' and epoch_acc > best_acc:\n",
    "                best_acc = epoch_acc\n",
    "                best_model_wts = copy.deepcopy(model.state_dict())\n",
    "\n",
    "        print()\n",
    "\n",
    "    time_elapsed = time.time() - since\n",
    "    print('Training complete in {:.0f}m {:.0f}s'.format(\n",
    "        time_elapsed // 60, time_elapsed % 60))\n",
    "    print('Best val Acc: {:4f}'.format(best_acc))\n",
    "\n",
    "    # loading best model weights\n",
    "    model.load_state_dict(best_model_wts)\n",
    "    train_val_plot(loss_plot, val_loss_plot, acc_plot, val_acc_plot)\n",
    "    return model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 0/9\n",
      "----------\n",
      "train Loss: 0.5342 Acc: 0.7750\n",
      "val Loss: 0.5053 Acc: 0.7788\n",
      "\n",
      "Epoch 1/9\n",
      "----------\n",
      "train Loss: 0.4869 Acc: 0.7814\n",
      "val Loss: 0.4515 Acc: 0.7970\n",
      "\n",
      "Epoch 2/9\n",
      "----------\n",
      "train Loss: 0.4094 Acc: 0.8207\n",
      "val Loss: 0.3524 Acc: 0.8533\n",
      "\n",
      "Epoch 3/9\n",
      "----------\n",
      "train Loss: 0.3032 Acc: 0.8739\n",
      "val Loss: 0.2499 Acc: 0.8997\n",
      "\n",
      "Epoch 4/9\n",
      "----------\n",
      "train Loss: 0.2125 Acc: 0.9137\n",
      "val Loss: 0.1753 Acc: 0.9315\n",
      "\n",
      "Epoch 5/9\n",
      "----------\n",
      "train Loss: 0.1524 Acc: 0.9392\n",
      "val Loss: 0.1280 Acc: 0.9506\n",
      "\n",
      "Epoch 6/9\n",
      "----------\n",
      "train Loss: 0.1122 Acc: 0.9564\n",
      "val Loss: 0.0972 Acc: 0.9635\n",
      "\n",
      "Epoch 7/9\n",
      "----------\n",
      "train Loss: 0.0958 Acc: 0.9629\n",
      "val Loss: 0.0938 Acc: 0.9633\n",
      "\n",
      "Epoch 8/9\n",
      "----------\n",
      "train Loss: 0.0932 Acc: 0.9637\n",
      "val Loss: 0.0914 Acc: 0.9641\n",
      "\n",
      "Epoch 9/9\n",
      "----------\n",
      "train Loss: 0.0909 Acc: 0.9650\n",
      "val Loss: 0.0892 Acc: 0.9651\n",
      "\n",
      "Training complete in 0m 50s\n",
      "Best val Acc: 0.965105\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "ANN2(\n",
       "  (fc1): Linear(in_features=50, out_features=30, bias=True)\n",
       "  (fc2): Linear(in_features=30, out_features=10, bias=True)\n",
       "  (fc3): Linear(in_features=10, out_features=2, bias=True)\n",
       ")"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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+4mphLjf5DRDbnPxhJ4/QPNXYM/38ENXiMzetJyeDcsxqEUlvt96hh+2nnZoN0XBVr9+ferWrctPP/3ElClTUErx3HPPpauXFDClPaMREhLC9evXs7Xt0qVLExQUxJIlSzh+/HhyeWxsLF9++aXNPphMplRnirTWjB8/Pl3dQoUKAaRK/303SZnuPvvsMywWS3L5hQsXmDNnDpUqVSIwMDBzb8yB2rVrh7u7O5MnT06VPvz27dtMmTKFwoUL06ZNGwCbv4fy5cvj6+ubPA5RUVFER0enquPs7EydOnWAzI+XECL/KX51M3zbxEjj3eFz6LfU4cHRtI0neG3RfppW8WXu840lOBL5jpxBygscmLxhzGPVOXH1DmN/PUxF30I0q+p775WEwDiLNGLECNasWUOrVq1spuvu2LEjb775Jn379mXYsGF4e3vz559/snr1aipWzP5d1SdOnEibNm1o2rQpQ4cOxdvbm3nz5tmcWta9e3eWLVtG69at6devH7GxsSxdupSYmJh0df38/PD392fu3Ln4+/tTokQJvLy86Nixo81+1KxZk5dffpmJEyfSsmVLevbsye3btwkJCSE6OppvvvkGk8nxx5ViY2P59NNPbd5At3v37lSvXp2PP/6YUaNG0bhxY5555hkSExOZPXs2p06dYsaMGclTO8eOHcuGDRvo1KkTFStWJDExkWXLlnH8+HHefPNNwDjr9Oijj9K1a1dq1aqFj48Phw8f5ttvv6Vy5co0bdrU4e9RCJHLEhNhxShqHf4eyjSArtPAt8q918sCrTWfrP6bkD9O0DGwFBN7PoSrs9zjSORDGaW3y6+PfJ8+9dxOrT+tovWHZbX+57dsNXE7Ok63m/iHrvPean3iquNSdGqdB8bnPnjQ0nwnCQ8P125ubhrQ33//fYb1NmzYoB9++GFdqFAhXaRIEd2xY0d96NChdCm9tc58mu+kdoODg7Wrq6suUaKEHj58uN63b5/NNN3ffvutrl69unZ1ddWlSpXSgwcP1levXk2Xtltrrbds2aKbNGmiPTw8NJDcH1tpvpOEhITohx56SLu6umovLy/dtm1bvXnz5lR17rb+9OnTNaA3bdqU4TimHCMgw8fChQuT6y5cuFAHBwdrd3d37eHhoZs2baqXL1+eqr21a9fqHj166PLly2s3Nzft4+OjGzdurGfMmKETExO1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\n",
      "text/plain": [
       "<Figure size 1008x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from torch.optim import lr_scheduler\n",
    "import time\n",
    "import copy\n",
    "\n",
    "dataloaders = {'train': trainloader, 'val': validloader}\n",
    "dataset_sizes = {'train': len(trainloader.dataset), 'val': len(validloader.dataset)}\n",
    "device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
    "model4 = ANN2(50, 30, 10, 2)\n",
    "criterion = nn.CrossEntropyLoss() #nn.BCEWithLogitsLoss()\n",
    "optimizer_ft = optim.SGD(model4.parameters(), lr=0.001, momentum=0.9)\n",
    "# Decaying learning rate by a factor of 0.1 every 7 epochs\n",
    "exp_lr_scheduler = lr_scheduler.StepLR(optimizer_ft, step_size=7, gamma=0.1)\n",
    "train_model(model4, criterion, optimizer_ft, exp_lr_scheduler, num_epochs=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test Accuracy: 96.63 %\n"
     ]
    }
   ],
   "source": [
    "test_model(model4, testloader)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
